#include <bits/stdc++.h>
using namespace std;

#define int long long

void solve(){
	int n,m;cin>>n>>m;
	vector<int> a(n),cnt(m);
	for(int&x:a){
		cin>>x;
		x--;
		cnt[x]++;
	}
	vector pre(m,vector<int>(n+1));
	for(int i=0;i<m;i++){
		for(int j=0;j<n;j++){
			pre[i][j+1]=pre[i][j]+(a[j]==i);
		}
	}
	vector<int> c(1<<m);
	for(int st=(1<<m)-2;st>=0;st--){
		for(int j=0;j<m;j++){
			if((st>>j&1)==0){
				c[st]=c[st^(1<<j)]+cnt[j];
				break;
			}
		}
	}
	vector<int> memo(1<<m,INT_MAX);
	function<int(int)> dfs=[&](int mask)->int{
		if(mask==0) return 0;
		if(memo[mask]!=INT_MAX) return memo[mask];
		int res=INT_MAX/2;
		for(int j=0;j<m;j++){
			if(mask>>j&1){
				res=min(res,dfs(mask^(1<<j))+cnt[j]-pre[j][c[mask]+cnt[j]]+pre[j][c[mask]]);
			}
		}
		return memo[mask]=res;
	};
	cout<<dfs((1<<m)-1);
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	int t=1;
	// cin>>t;
	while(t--){
		solve();
		if(t)cout<<"\n";
	}
	return 0;
}
